package cn.itrip.common;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class RedisUtil {

    private static RedisUtil redisUtil;

    private static Jedis jedis;

    static {

        JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();

        JedisPool jedisPool=new JedisPool();

        jedis=jedisPool.getResource();

    }



    public static synchronized RedisUtil getInstance(){
       if(redisUtil==null){
           redisUtil = new RedisUtil();
       }
        return redisUtil;
    }

    /**
     * 设置默认时间的key-value
     * @param key
     * @param value
     */
    public void setKeyAndValue(String key,String value){
        jedis.set(key,value);
    }

    /**
     * 设置key-value，并指定在expiretimeSeconds秒后过期
     * @param key
     * @param value
     * @param expiretimeSeconds
     */
    public void setExpireValue(String key,String value,int expiretimeSeconds){
        jedis.set(key, value);
        jedis.expire(key,expiretimeSeconds);
    }

    public void del(String key){
        jedis.del(key);
    }

    /**
     * 获取键对应的值
     * @param key
     */
    public String getValue(String key){

        return  jedis.get(key);
    }

    /**
     * 对比key值对应的值和value的值是否相等(嵌套使用，报空指针，已禁用）
     * @param key
     * @param value
     * @return
     */
    public boolean compare(String key,String value) {

        String keysValue = jedis.get(key);
        if (keysValue.equals(value)) {
            return true;
        } else {
            return false;
        }
    }

}
